﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UtilityExtensions;
using DAL;
namespace BOL
{
    [Serializable]
    public class EstructuraCostoItemConfInfo
    {

        public int idInternal {get; set;}
        public string codigo {get; set;}
        public string descripcion {get; set;}
        public string unidad {get; set;}
        public string cantidadStr {get; set;}
        public string  cantidadUsoStr {get; set;}
        public decimal cantidad { get; set; }
        public decimal cantidadUso { get; set; }
        public string  precioMon {get; set;}
        public string  totalMon {get; set;}
        public string  totalUsoMon {get; set;}
        public decimal total { get; set; }
        public decimal totalUso { get; set; }
        public string  totalDispMon { get; set; }
        public decimal totalDisp { get; set; }
        public int idEstructuraCosto { get; set; }
        public bool bitsel { get; set; }
        public int idInsumo { get; set; }
        public decimal precio { get; set; }
        public int idMoneda { get; set; }
        public decimal tipoCambio { get; set; }
            public decimal cantidadDisp { get; set; }
        

        public decimal totalReUso { get; set; }
        public string totalReUsoMon { get; set; }
        private List<ComparativoItemSelecInfo> comparativoItemSelecInfo { get; set; }

        public bool bitFinalizadoContrato { 
            
            get {
               
            var q = from a in DbUtil.Db.ComparativoItemSelecPrv
                    where a.ComparativoItem.idEstructuraCostoItem == idInternal
                    select new ComparativoItemSelecInfo
                    {
                        // todos deben estar finalizados para que pueda ser utilizado para partir
                       
                       numDocumento=a.ComparativoItem.Comparativo.numDocumento,
                       tipoCambio=a.ComparativoItem.Comparativo.tipoCambio,
                       precio=String.Format("{0}{1:N}",a.ComparativoItem.Comparativo.Moneda.simbol,a.precio.Value),
                       total=String.Format("{0}{1:N}",a.ComparativoItem.Comparativo.Moneda.simbol,a.total.Value),
                       bitFinalizado = (a.total == a.totalUso & a.ComparativoItem.bitFinalizado==true)

                    };
            comparativoItemSelecInfo = q.ToList();
                // todos los comparativos debe estar finalizados para este item
           


            foreach (var item in comparativoItemSelecInfo)
            {
                //todos deben estar finalizados
                  toolTip = toolTip +
                    String.Format("COMP:{0}\t Precio:{1}\t Total{2}\n",
                    item.numDocumento, item.precio, item.total);
                toolTipResu=toolTipResu+
                    String.Format("COMP:{0}",
                    item.numDocumento);


            }

            var qdis = (from a in comparativoItemSelecInfo
                        select a.bitFinalizado).Distinct();
            if (qdis.Count() == 1)
            {
                return qdis.First();
            }
            else
            {
                return false;
            }
                }
           
            }

        public string toolTipResu { get; set; }

        public string toolTip { get; set; }
        public int? ECItemRef { get; set; }  //para controlar las devoluciones
        public int? idOrdenCompraItemRef { get; set; }  //para controlar las devoluciones
        public string simbol { get; set; }

        
        
        
    }
}
